package com.zja.model;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author JA
 * @date: 2025/5/4
 * description:
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class JsonResponse {
    private boolean success;
    private String message;
    private Object data;

    //静态工厂方法

    //返回成功状态、附带一条自定义消息和数据时使用
    public static JsonResponse success(String message, Object data) {
        return new JsonResponse(true, message, data);
    }
    //成功但不需要附带数据时使用，比如点赞、删除成功等
    public static JsonResponse success(String message) {
        return new JsonResponse(true, message, null);
    }
    //成功返回数据，但不关心消息内容，默认 message = "ok"。用于数据查询类接口
    public static JsonResponse success(Object data) {return new JsonResponse(true, "ok", data);}
    //返回失败状态和失败消息，不附带数据
    public static JsonResponse error(String message) {
        return new JsonResponse(false, message, null);
    }
}
